package com.tgpay.iot.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 充电配置类
 */
@Component
@ConfigurationProperties(prefix = "app.charging")
@Data
public class ChargingConfig {
    
    /**
     * 默认充电时长（分钟）
     */
    private Integer defaultDuration = 240;
    
    /**
     * 最大充电时长（分钟）
     */
    private Integer maxDuration = 720;
    
    /**
     * 最小充电时长（分钟）
     */
    private Integer minDuration = 30;
    
    /**
     * 验证充电时长是否有效
     * @param duration 充电时长（分钟）
     * @return 是否有效
     */
    public boolean isValidDuration(Integer duration) {
        return duration != null && duration >= minDuration && duration <= maxDuration;
    }
    
    /**
     * 获取有效的充电时长，如果无效则返回默认值
     * @param duration 输入的充电时长
     * @return 有效的充电时长
     */
    public Integer getValidDuration(Integer duration) {
        return isValidDuration(duration) ? duration : defaultDuration;
    }
}